// pages/adminPage/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  // 模板下载
  templateDownload: function () {
    wx.showLoading({
      title: '下载中...',
    });
    const fileID = 'cloud://cloud1-8g73679w3b60164e.636c-cloud1-8g73679w3b60164e-1372681359/import_template.xlsx'
    wx.cloud.getTempFileURL({
      fileList: [fileID]
    }).then(res => {
      console.log(res);
      wx.downloadFile({
        url: res.fileList[0].tempFileURL, // 替换为你的XLSX文件地址
        success: (res) => {
          wx.hideLoading();
          if (res.statusCode === 200) {
            // 下载成功，保存文件
            this.saveFile(res.tempFilePath);
          } else {
            wx.showToast({
              title: '下载失败',
              icon: 'none'
            });
          }
        },
        fail: (err) => {
          wx.hideLoading();
          wx.showToast({
            title: '下载失败',
            icon: 'none'
          });
          console.error('下载失败:', err);
        }
      });
    })


  },
  saveFile: function (tempFilePath) {
    const fs = wx.getFileSystemManager();
    const filePath = `${wx.env.USER_DATA_PATH}/downloaded_template_${Date.now()}.xlsx`;
    const that = this;
    fs.saveFile({
      tempFilePath: tempFilePath,
      filePath: filePath,
      success: (response) => {
        wx.showModal({
          title: '下载成功',
          content: '手机端需通过微信文件传输助手导出文件，电脑端可直接导出文件',
          confirmText: '立即打开',
          // cancelText: '复制链接',
          success(res) {
            console.log(res);
            if (res.confirm) {
              // 打开文档预览
              that.openDocument(response.savedFilePath);
            } else {

            }
          },
          fail: (err) => console.error('弹窗调用失败', err)
        });

        // wx.showToast({
        //   title: '下载成功,手机端需通过微信文件传输助手导出文件，电脑端可直接导出文件',
        //   icon: 'success'
        // });

      },
      fail: (err) => {
        wx.showToast({
          title: '保存失败',
          icon: 'none'
        });
        console.error('保存失败:', err);
      }
    });
  },

  openDocument: function (filePath) {
    wx.openDocument({
      filePath: filePath,
      fileType: 'xlsx',
      showMenu: true, // 显示右上角菜单，允许用户转发和保存
      success: (res) => {
        console.log('打开文档成功');
      },
      fail: (err) => {
        console.error('打开文档失败:', err);
      }
    });
  },
  // 订单导入
  orderImport: function () {
    wx.showModal({
      title: '提示',
      content: `手机操作时需要从聊天记录中选择表格文件！`,
      confirmText: '选择文件',
      cancelText: '取消',
      success(res) {
        if (res.confirm) {
          // 选择Excel文件
          wx.chooseMessageFile({
            count: 1,
            type: 'file',
            extension: ['xlsx'],
            success(res) {
              const file = res.tempFiles[0]
              console.log('选择的文件:', file);
              wx.showLoading({
                title: '文件解析中...',
              });

              // 上传文件到云存储
              wx.cloud.uploadFile({
                cloudPath: 'import/' + Date.now() + '.xlsx',
                filePath: file.path,
                success: res => {
                  console.log('上传成功', res)

                  // 调用云函数解析Excel
                  wx.cloud.callFunction({
                    name: 'adminServer',
                    data: {
                      type: 'parseXlsxFile',
                      fileID: res.fileID
                    },
                    success: res => {
                      console.log('导入结果:', res.result)
                      wx.hideLoading();
                      const result = res.result;
                      if (result.code === 0) {
                        wx.showModal({
                          title: '导入完成',
                          content: `共处理${result.data.total}条数据\n新增:${result.data.added}条\n更新:${result.data.updated}条\n失败:${result.data.failed}条`,
                          showCancel: true,
                          success: () => {
                            // 如果有错误，可以显示错误详情
                            if (result.data.errors.length > 0) {
                              let errors = result.data.errors;
                              let str = ``;
                              errors.forEach(item => {
                                str = str + `第${item.row}行数据，姓名为${item.data.姓名}的种植户，${item.error}`
                              })
                              wx.showModal({
                                title: '错误详情',
                                content: str,
                                showCancel: true,
                                success: () => {
                                  // 跳转到种植户列表页
                                  wx.navigateTo({
                                    url: '/pages/peasantListPage/index'
                                  });
                                }
                              })
                              console.log('错误详情:', result.data.errors)
                            } else {
                              // 跳转到种植户列表页
                              wx.navigateTo({
                                url: '/pages/peasantListPage/index'
                              });
                            }
                          }
                        })
                      } else {
                        wx.showModal({
                          title: '导入失败',
                          content: result.message,
                          showCancel: false
                        })
                      }
                    },
                    fail: err => {
                      wx.hideLoading();
                      console.error('调用云函数失败', err)
                      wx.showModal({
                        title: '错误',
                        content: '导入失败，请重试',
                        showCancel: false
                      })
                    }
                  })
                },
                fail: err => {
                  console.error('上传失败', err)
                  wx.showModal({
                    title: '错误',
                    content: '文件上传失败',
                    showCancel: false
                  })
                }
              })
            },
            fail(err) {
              console.error('选择文件失败', err)
            }
          })
        } else {

        }
      },
      fail: (err) => console.error('弹窗调用失败', err)
    });

  },
  // 收购登记
  purchaseRegister: function () {
    wx.navigateTo({
      url: '/pages/peasantSearchPage/index'
    });
  },
  // 收购统计
  purchaseStatistics: function () {
    wx.navigateTo({
      url: '/pages/peasantListPage/index'
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})